import { defineStore } from 'pinia';
import { ref, computed } from 'vue';

// Store 用来管理数据
// defineStore('名称', () => {});
// defineStore('名称', {});

// 建议命名规范  use名称Store
// 函数形式  组合式(Setup)语法
export const useCounterStore = defineStore('counter', () => {
  // 可以使用任意的api
  const count = ref(0);
  const name = ref('小明');
  // 使用ref 定义的数据相当于 Vuex 中的 state
  // state 的数据可以渲染到页面中

  // 加数字
  function increment() {
    count.value++;
    // count.value+=1
  }
  // 减数字
  function decrement() {
    count.value--;
    // count.value-=1
  }

  // 计算属性
  const double = computed(() => {
    return count.value * 2;
  });

  return { count, name, increment, decrement, double };
});

// 对象形式  选项式(Options) 语法
// export const useCounterStore = defineStore('counter', {
//   state() {
//     return {
//       count: 100,
//       name: '小明'
//     };
//   },

//   getters: {
//     double: (state) => {
//       return state.count * 2;
//     }
//   },

//   actions: {
//     // 定义函数
//     increment() {
//       this.count++;
//     },
//     decrement() {
//       this.count--;
//     }
//   }
// });
